#[test]
fn test_resolving_only_package() {
- let mut reg = registry(vec![pkg("foo")]);
- let res = resolve(pkg_id("root"), vec![dep("foo")], &mut reg);
+ let reg = registry(vec![pkg("foo")]);
+ let res = resolve(pkg_id("root"), vec![dep("foo")], ®);
assert_that(&res.unwrap(), contains(names(&["root", "foo"])).exactly());
}
#[test]
fn test_resolving_one_dep() {
- let mut reg = registry(vec![pkg("foo"), pkg("bar")]);
- let res = resolve(pkg_id("root"), vec![dep("foo")], &mut reg);
+ let reg = registry(vec![pkg("foo"), pkg("bar")]);
+ let res = resolve(pkg_id("root"), vec![dep("foo")], ®);
assert_that(&res.unwrap(), contains(names(&["root", "foo"])).exactly());
}
#[test]
fn test_resolving_multiple_deps() {
- let mut reg = registry(vec![pkg!("foo"), pkg!("bar"), pkg!("baz")]);
+ let reg = registry(vec![pkg!("foo"), pkg!("bar"), pkg!("baz")]);
let res = resolve(pkg_id("root"), vec![dep("foo"), dep("baz")],
- &mut reg).unwrap();
+ ®).unwrap();
assert_that(&res, contains(names(&["root", "foo", "baz"])).exactly());
}
#[test]
fn test_resolving_transitive_deps() {
- let mut reg = registry(vec![pkg!("foo"), pkg!("bar" => ["foo"])]);
- let res = resolve(pkg_id("root"), vec![dep("bar")], &mut reg).unwrap();
+ let reg = registry(vec![pkg!("foo"), pkg!("bar" => ["foo"])]);
+ let res = resolve(pkg_id("root"), vec![dep("bar")], ®).unwrap();
assert_that(&res, contains(names(&["root", "foo", "bar"])));
}
#[test]
fn test_resolving_common_transitive_deps() {
- let mut reg = registry(vec![pkg!("foo" => ["bar"]), pkg!("bar")]);
+ let reg = registry(vec![pkg!("foo" => ["bar"]), pkg!("bar")]);
let res = resolve(pkg_id("root"), vec![dep("foo"), dep("bar")],
- &mut reg).unwrap();
+ ®).unwrap();
assert_that(&res, contains(names(&["root", "foo", "bar"])));
}
let list = vec![pkg_loc("foo", "http://first.example.com"),
pkg_loc("bar", "http://second.example.com")];
- let mut reg = registry(list);
+ let reg = registry(list);
let res = resolve(pkg_id("root"),
vec![dep_loc("foo", "http://first.example.com"),
dep_loc("bar", "http://second.example.com")],
- &mut reg);
+ ®);
let mut names = loc_names(&[("foo", "http://first.example.com"),
("bar", "http://second.example.com")]);
#[test]
fn test_resolving_with_dev_deps() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!("foo" => ["bar", dep_kind("baz", Development)]),
pkg!("baz" => ["bat", dep_kind("bam", Development)]),
pkg!("bar"),
let res = resolve(pkg_id("root"),
vec![dep("foo"), dep_kind("baz", Development)],
- &mut reg).unwrap();
+ ®).unwrap();
assert_that(&res, contains(names(&["root", "foo", "bar", "baz"])));
}
#[test]
fn resolving_with_many_versions() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("foo", "1.0.1")),
pkg!(("foo", "1.0.2")),
]);
- let res = resolve(pkg_id("root"), vec![dep("foo")], &mut reg).unwrap();
+ let res = resolve(pkg_id("root"), vec![dep("foo")], ®).unwrap();
assert_that(&res, contains(names(&[("root", "1.0.0"),
("foo", "1.0.2")])));
#[test]
fn resolving_with_specific_version() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("foo", "1.0.1")),
pkg!(("foo", "1.0.2")),
]);
let res = resolve(pkg_id("root"), vec![dep_req("foo", "=1.0.1")],
- &mut reg).unwrap();
+ ®).unwrap();
assert_that(&res, contains(names(&[("root", "1.0.0"),
("foo", "1.0.1")])));
#[test]
fn test_resolving_maximum_version_with_transitive_deps() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("util", "1.2.2")),
pkg!(("util", "1.0.0")),
pkg!(("util", "1.1.1")),
]);
let res = resolve(pkg_id("root"), vec![dep_req("foo", "1.0.0"), dep_req("bar", "1.0.0")],
- &mut reg).unwrap();
+ ®).unwrap();
assert_that(&res, contains(names(&[("root", "1.0.0"),
("foo", "1.0.0"),
#[test]
fn resolving_incompat_versions() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("foo", "1.0.1")),
pkg!(("foo", "1.0.2")),
pkg!("bar" => [dep_req("foo", "=1.0.2")]),
assert!(resolve(pkg_id("root"), vec![
dep_req("foo", "=1.0.1"),
dep("bar"),
- ], &mut reg).is_err());
+ ], ®).is_err());
}
#[test]
fn resolving_backtrack() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("foo", "1.0.2") => [dep("bar")]),
pkg!(("foo", "1.0.1") => [dep("baz")]),
pkg!("bar" => [dep_req("foo", "=2.0.2")]),
let res = resolve(pkg_id("root"), vec![
dep_req("foo", "^1"),
- ], &mut reg).unwrap();
+ ], ®).unwrap();
assert_that(&res, contains(names(&[("root", "1.0.0"),
("foo", "1.0.1"),
#[test]
fn resolving_allows_multiple_compatible_versions() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("foo", "1.0.0")),
pkg!(("foo", "2.0.0")),
pkg!(("foo", "0.1.0")),
let res = resolve(pkg_id("root"), vec![
dep("bar"),
- ], &mut reg).unwrap();
+ ], ®).unwrap();
assert_that(&res, contains(names(&[("root", "1.0.0"),
("foo", "1.0.0"),
#[test]
fn resolving_with_deep_backtracking() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("foo", "1.0.1") => [dep_req("bar", "1")]),
pkg!(("foo", "1.0.0") => [dep_req("bar", "2")]),
let res = resolve(pkg_id("root"), vec![
dep_req("foo", "1"),
- ], &mut reg).unwrap();
+ ], ®).unwrap();
assert_that(&res, contains(names(&[("root", "1.0.0"),
("foo", "1.0.0"),
#[test]
fn resolving_but_no_exists() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
]);
let res = resolve(pkg_id("root"), vec![
dep_req("foo", "1"),
- ], &mut reg);
+ ], ®);
assert!(res.is_err());
assert_eq!(res.err().unwrap().to_string(), "\
#[test]
fn resolving_cycle() {
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!("foo" => ["foo"]),
]);
let _ = resolve(pkg_id("root"), vec![
dep_req("foo", "1"),
- ], &mut reg);
+ ], ®);
}
#[test]
fn hard_equality() {
extern crate env_logger;
- let mut reg = registry(vec![
+ let reg = registry(vec![
pkg!(("foo", "1.0.1")),
pkg!(("foo", "1.0.0")),
let res = resolve(pkg_id("root"), vec![
dep_req("bar", "1"),
dep_req("foo", "=1.0.0"),
- ], &mut reg).unwrap();
+ ], ®).unwrap();
assert_that(&res, contains(names(&[("root", "1.0.0"),
("foo", "1.0.0"),